草庐IT

TypeScript 运算符

全部标签

javascript - TypeScript 中的深度克隆(保留类型)

我需要在TypeScript中深度克隆一个对象。这应该不是问题,因为像Lodash这样的库为此提供了适当的功能。然而,这些似乎丢弃了类型信息。>vara=newSomeClass();>ainstanceofSomeClass;varb=_.cloneDeep(a);>binstanceofSomeClass;有没有办法在保留此键入信息的同时克隆TypeScript中的对象? 最佳答案 Typescript不会在此处丢弃类型信息。在DefinitelyTypedlodash.d.ts文件,你可以看到cloneDeep被定义为clon

javascript - Lodash Flow 和 TypeScript

我一直在关注一篇关于Lodash的文章,Whyusing_.chainisamistake,它突出显示您可以使用Flow消除对链的需求.给出的例子如下使用链import_from"lodash";_.chain([1,2,3]).map(x=>[x,x*2]).flatten().sort().value();可以使用flow转换成下面的importmapfrom"lodash/fp/map";importflattenfrom"lodash/fp/flatten";importsortByfrom"lodash/fp/sortBy";importflowfrom"lodash/fp/

javascript - TypeScript 匿名函数

这个JavaScript的TypeScript等价物是什么?(function(){/*codehere*/})();我试过了()=>{/*codehere*/}但这会产生(function(){/*codehere*/});我需要最后一组额外的括号来执行匿名函数。 最佳答案 (()=>{/*codehere*/})();或者简单地使用JavaScript(同样有效的TypeScript)(function(){/*codehere*/})();...取决于您是否要使用粗箭头捕获this。Playground.

javascript - "let _self = this"在 Javascript/Typescript 中是什么意思?

这个问题在这里已经有了答案:Howdoesthe"this"keywordwork,andwhenshoulditbeused?(22个答案)WhatunderliesthisJavaScriptidiom:varself=this?(10个答案)关闭4个月前。在此codesnippet,为什么this.identifier不起作用但_self.url起作用?getConfig(){let_self=this;returnfunction(){this.page.url=this.url||window.location.href;this.page.identifier=_self.

javascript - 当 "!"运算符与非 bool 变量一起使用时,它在 javascript 中意味着什么?

在阅读javascript代码时,我看到了用于非bool变量的!运算符。以下是未使用的代码示例。/***loadsaresourcefromaurl*@param{string}urltheurloftheresourcetoload*@param{string}relativeTotheurltoloadrelativeto*@param{function}callbackthefunctiontocalloncethefileisloaded*@private*/GLGE.Wavefront.prototype.loadFile=function(url,relativeTo,ca

javascript - Typescript:如何检查 eventTarget 中的 tagName?

为什么在这种情况下:varele=document.getElementById("toolbar");ele.addEventListener("click",function(e){if(e.target.tagName==="SPAN"){console.log(e.target.tagName)}},false);VisualStudio向我显示此错误?Build:Operator'==='cannotbeappliedtotypes'HTMLElement'and'string'.Property'tagName'doesnotexistontype'EventTarget'

javascript - JavaScript 中的 Nullish 合并运算符

如何以更好的方式处理这件事。this.state.updateItem?this.state.updateItem.unit:'Unit';我试过this.state.updateItem.unit||'Unit',但它发现它会产生错误,因为this.state.updateItem为NULL,然后它找不到unit的任何属性。如何更好地做到这一点? 最佳答案 现在你必须这样做:(this.state.updateItem||{}).unit||'Unit'关于optionalchaining的ES(JavaScript)第一阶段提案

javascript - Backbone 和 TypeScript,一段不幸的婚姻 : Building a type-safe "get"?

我正在尝试将TypeScript与Backbone.js结合使用。它“有效”,但是Backbone的get()和set()失去了大部分类型安全。我正在尝试编写一个可以恢复类型安全的辅助方法。像这样:我会把它放在我的模型中:object():IMyModel{returnattributes;//exceptIshoulduseget(),notattributes,perdocumentation}这在消费者中:varmyVar=this.model.object().MyProperty;通过这种语法,我得到了TypeScript的知识,即MyProperty存在并且是bool,这太

javascript - 意外的标记运算符 «=»,预期的 punc «,»

我收到以下错误Parseerror:Unexpectedtokenoperator«=»,expectedpunc«,»Line159,column26这是我的代码functionfitBounds(type="all",shape=null){varbounds=newgoogle.maps.LatLngBounds();if(type=="all"){if((circles.length>0)|(polygons.length>0)){$.each(circles,function(index,circle){bounds.union(circle.getBounds());});

javascript - 运算符 ">>"(双箭头)和 "|"(单竖线)在 JavaScript 中是什么意思?

我在一些JS代码中看到了这个:index=[ascii[0]>>2,((ascii[0]&3)>4,((ascii[1]&15)>6,ascii[2]&63];我很想知道很多这意味着什么。特别是“>>”,单竖线“|”以及最后一行的“&”符号?非常感谢! 最佳答案 x>>y表示移动x的位通过y右边的地方(左边)。x|y表示比较x的位和y,放一个1在每一位中,如果x或y有一个1在那个位置。x&y与|相同,除了结果是1如果两个x和y有一个1.例子:#left-shifting1by4bitsyields161>3=b1001000>>3=